import smtplib
import pandas as pd
from smtplib import SMTP_SSL
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.application import MIMEApplication

host_server = 'smtp.qq.com'  #qq邮箱smtp服务器
sender_qq = 'xxxxxxxxxxxxx@qq.com' #发件人邮箱
pwd = '***********' # 记得换成自己生成的密码
mail_title = 'xxxx xxx 研究生推免咨询（排名前5%）' #标题
df = pd.read_excel(r'teacher.xlsx') # 这里存的是要群发的老师名字和邮箱
data = df.values

for i in range(len(data)):
    receiver = data[i][1]

    #邮件正文内容
    mail_content = """
尊敬的{name}老师：
    <p>    您好！我叫，来自xx大学大学2019级计算机科学与技术专业。
    
    <br />    我的学术适应性很强，有价值的领域我都愿意去研究。同时有着较强的学习能力，接受新事物能力强。</p>

    <p>    十分希望能够有机会跟随您继续学习，期待您的回信！</p>

    <p>    诚祝工作顺利，身体健康！
    <br />    附件是我的简历，以便您进一步了解我。</p>
学生：郝祥兆
""".format(name = data[i][0])

    msg = MIMEMultipart()
    msg["Subject"] = Header(mail_title,'utf-8')
    msg["From"] = sender_qq
    msg["To"] = Header(receiver,"utf-8")
    msg.attach(MIMEText(mail_content,'html'))
    pdfFile = 'xx大学-xxx-计算机科学与技术.pdf' # 简历作为附件，这里是简历的路径
    pdfApart = MIMEApplication(open(pdfFile, 'rb').read())
    pdfApart.add_header('Content-Disposition', 'attachment', filename=pdfFile)
    msg.attach(pdfApart)

    try:
        smtp = SMTP_SSL(host_server) # ssl登录连接到邮件服务器
        smtp.set_debuglevel(1) # 0是关闭，1是开启debug
        smtp.ehlo(host_server) # 跟服务器打招呼，告诉它我们准备连接，最好加上这行代码
        smtp.login(sender_qq,pwd)
        smtp.sendmail(sender_qq,receiver,msg.as_string())
        smtp.quit()
        print("邮件发送成功")
    except smtplib.SMTPException:
        print("无法发送邮件")


